package com.blue.blue2020;

import java.util.Scanner;

/**
 * @authoer zsj
 * @date 2022/6/9 16:45
 */
public class test {

    /**
     * 小蓝有黄绿蓝三种颜色的小球，分别为 R, G, B 个。同样颜色的小球没有区别。
     * 小蓝将这些小球从左到右排成一排，排完后，将最左边的连续同色小球个数记为ti
     * t1<t2<t3
     * 以此类推直到最右边的小球。
     */
    public static int[] a = new int[3];
    public static int res = 0;

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int sum = 0;
        for (int i = 0; i < 3; i++) {
            a[i] = scan.nextInt();
            sum += a[i];
        }
        dfs(sum, 0, -1);
        System.out.print(res);
    }

    //x表示上次统计后相同小球的个数
    public static void dfs(int sum, int x, int last) {
        //退出条件，当小球个数全部用完说明一种情况排好序了，方案数加1
        if (sum == 0) {
            res++;
            return;
        }
        for (int i = 0; i < 3; i++) {
            //如果与上次用的小球颜色一样，跳过继续循环
            if (i == last) continue;
            //j表示，本次用的相同颜色小球的个数,要比上次多一个,因为是增序,
            //但不能超过本次所用颜色的小球的个数
            for (int j = x + 1; j <= a[i]; j++) {
                a[i] -= j;//用过的减掉
                if (sum >= j) dfs(sum - j, j, i);
                a[i] += j; //回溯算法常用于类似排列组合的题中
            }
        }
    }



}
